﻿#!/usr/bin/env python3
import time
import re
import math


#* 警告:由于作者正生病，本程序可能出现未完成的代码、错误的信息和误读等问题，且本程序将长期不更新。 *

iseq = '' # 中间 序列变量

# 核酸 Class
class na:
    # 该分子的结构式
    smiles = '' # 简化分子线性输入规范
    two_molstr = [[]] # 二维结构式
    sk_sy = '' # 结构简式

class dna(na): #DNA Class
    basic = ['A', 'T', 'G', 'C'] # DNA基本碱基
    # DNA
    dna = ''
    newdna = ''
    def pair(seq):# 碱基配对，代码来自文心一言
        dna.newdna = ''
        for base in seq:
            if base == 'A':
                dna.newdna += 'T'
            elif base == 'T' or base == 'U':
                dna.newdna += 'A'
            elif base == 'G':
                dna.newdna += 'C'
            elif base == 'C':
                dna.newdna += 'G'
        return dna.newdna
    def paircmd(): # 碱基配对操作界面
        print ("DNApair功能（INP: ATGCU, 正确结果: TACGA）")
        iseq = input("输入模板碱基序列（ATGCU等）: ")
        dna.newdna = dna.pair(iseq)
        print ("newDNA结果: ",dna.newdna)
        return dna.newdna

class rna(na): # RNA Class
    basic = ['A', 'U', 'G', 'C'] # RNA基本碱基
    # RNA
    rna = ''
    newrna = ''
    def pair(seq):# 碱基配对，代码来自文心一言
        rna.newrna = ''
        for base in seq:
            if base == 'A':
                rna.newrna += 'U'
            elif base == 'T' or base == 'U':
                rna.newrna += 'A'
            elif base == 'G':
                rna.newrna += 'C'
            elif base == 'C':
                rna.newrna += 'G'
        return rna.newrna
    def paircmd(): # 碱基配对操作界面
        print ("RNApair功能（INP: ATGCU, 正确结果: UACGA）")
        iseq = input("输入模板碱基序列（AUGCT等）: ")
        rna.newrna = rna.pair(iseq)
        print ("newRNA结果: ",rna.newrna)
        return rna.newrna

# 氨基酸 Class
class amino:
    smiles = '' # 该分子的简化分子线性输入规范
    two_molstr = [[]] # 二维结构式
    def abbr(): # 查看分子结构通式
        print ("    H   O")
        print ("    │  ││")
        print ("H2N-Cα-C-OH")
        print ("    │")
        print ("    R")

def abbr():
    # 查看分子结构式
    cinabr = input("请输入您要查看的分子中文名称: ")
    if cinabr == "氨基酸":
        amino.abbr()
    else:
        print ("软件内无此分子！")

def res():
    # 参考资料
    print ("res-------------------------------------------------------╗")
    print ("          *虽然有引用，但可能出现误读等理论错误！*")
    print (" 1.清华大学网课:普通生物学导论")
    print (" 2.杨荣武《生物化学原理》")
    print (" 3.杨荣武《分子生物学》")
    print (" 4.李霞《生物信息学》")
    print (" 5.求闻百科（www.qiuwenbaike.cn）条目")
    print ("╚---------------------------------------------------------╝")



# BASIC Shell
if __name__ == '__main__':
    try:
       print ("XhsPyBio CLI BASIC Shell.")
       cin = input('>')
       if cin == "dr" or cin == "d":
           dna.paircmd()
       elif cin == "tr" or cin == "r":
           rna.paircmd()
       elif cin == "ab" or cin == "a":
           abbr()
       elif cin == "res" or cin == "r-":
           res()
    except:
        cin = input("ERROR, 请输入任意字符以退出。")
          

# 《XhsPyBio CLI》
# 创作：Xhs44444100；
# 本程序采用CC BY-SA 4.0协议授权。